package com.cswnode.Service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;

import java.util.List;
import java.util.Map;

/**
 * @author csw
 * @create 2020/10/4 1:18
 */

public interface FollowerService {
    /**
     * 关注
     * @param entityType
     * @param entityId
     * @return
     */
    void follow(int userId,int entityType,int entityId);

    /**
     * 取消关注
     * @param userId
     * @param entityType
     * @param entityId
     */
    void unFollow(int userId,int entityType,int entityId);

    /**
     * 查询实体粉丝的数量
     * @param entityId
     * @param entityType
     * @return
     */
    long findFansCount(int entityId,int entityType);

    /**
     * 查询某个用户关注的数量
     * @param userId
     * @param entityType
     * @return
     */
    long findFollowerCount(int userId,int entityType);

    /**
     * 查询当前用户是否关注实体
     * @param userId
     * @param entityId
     * @param entityType
     * @return
     */
    boolean findFollowerStatus(int userId,int entityId,int entityType);

    /**
     * 查询当前用户关注的集合
     * @param userId
     * @param offset
     * @param limit
     * @return
     */
    List<Map<String,Object>> findFollowerList(int userId,int offset,int limit);

    /**
     * 查询当前用户的粉丝的集合
     * @param userId
     * @param offset
     * @param limit
     * @return
     */
    List<Map<String,Object>> findFansList(int userId,int offset,int limit);

}
